package com.xr.system.service;

import com.xr.system.common.base.MyService;
import com.xr.system.entity.roleModule.AssignmentPermissionDto;
import com.xr.system.entity.roleModule.Role;

import java.util.List;

/**
 * 角色表(Role)表服务接口
 */
public interface RoleService extends MyService<Role> {

	/**
	 * 给角色分配权限
	 * @param assignmentPermissionDTO
	 * @return
	 */
	boolean assignmentPermissionForRole(AssignmentPermissionDto assignmentPermissionDTO);

	/**
	 * 获取当前角色已选的权限
	 * @param id
	 * @return
	 */
	List<Long> listCheckedPermissionForRole(Long id);

	/**
	 * 获取用户关联的角色
	 * @param id
	 * @return
	 */
	List<Long> getRoleByUserId(Long id);

	/**
	 * 新增数据
	 * @param role
	 * @return
	 */
	boolean insert(Role role);

	/**
	 * 修改数据
	 * @param role
	 * @return
	 */
	boolean update(Role role);

	/**
	 * 批量设置内置角色
	 * @param idList
	 * @return
	 */
	boolean setInitRole(List<Long> idList);

	/**
	 * 批量设置默认角色
	 * @param idList
	 * @return
	 */
	boolean setDefaultRole(List<Long> idList);

	/**
	 * 获取全部默认角色id
	 * @return
	 */
	List<Object> listDefaultRole();

	/**
	 * 通过角色code查询角色的所有权限
	 * @param code
	 * @return
	 */
	List<String> permissionCodeByRoleCode(String code);

}
